package lion.se.lucene.search;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.lang.StringUtils;

/**
 * 
 * 用户输入过滤 ，允许用户输入"" ，过滤掉用户输入的其他特殊字符
 * 
 * @author lion
 * @email hl_0074@sina.com
 * @date 2014年4月16日
 */
public class UserQueryFilter {

	static Pattern pattern = Pattern.compile("[&|!(){}\\[\\]^~*?:\\<>_%$#@+\\-]");

	public static String filter(String src) {

		Matcher matcher = pattern.matcher(src);
		src = matcher.replaceAll("");

		if (StringUtils.countMatches(src, "\"") % 2 != 0) {
			src = src.replace("\"", "");
		}

		if (StringUtils.isBlank(src)) {
			src = "*:*";
		}

		return src;
	}

	public static void main(String[] args) {

		System.out.println(filter("\"!@#$%^&*()_{}[]<>+-1243s\""));
		System.out.println(filter("*:*"));

	}
}
